// 登录校验中间件
module.exports = option => {
  const jwt = require('jsonwebtoken') // 加密
  const AdminUser = require('../models/AdminUser')
  return async (req, res, next) => {
    // token 校验是否有用户 -中间件-
    const token = String(req.headers.authorization || ' ').split(' ').pop()
    if (!token) {
      return res.status(401).send({
        message: '请先登录'
      })
    }
    // verify解密 与 sign加密 
    const { id } = jwt.verify(token, req.app.get('secret'))
    if (!id) {
      return res.status(401).send({
        message: '请先登录'
      })
    }
    // console.log(tokenData)
    req.user = await AdminUser.findById(id)
    // console.log(req.user)
    if (!req.user) {
      return res.status(401).send({
        message: '请先登录'
      })
    }
    await next()
  } 
}
